#ifndef OBJECT_H
#define OBJECT_H 1

#include <string>
using std::string;

class Object{
protected:
	string name,a_name,the_name;
	char symbol;
	int color;
	int row,col;
	int id;
public:
	Object() : name(""),the_name(""),a_name(""),symbol('%'),color(15/*white*/),row(-1),col(-1),id(-1){}
	Object(string name,string a_name,string the_name,char symbol,int color,int row,int col,int id) : name(name),a_name(a_name),
			the_name(the_name),symbol(symbol),color(color),row(row),col(col),id(id){}
	virtual string Name(){ return name; }
	virtual string AName(){ return a_name; }
	virtual string TheName(){ return the_name; }
	virtual bool IsHidden(){ return false; }
	char Symbol(){ return symbol; }
	int Color(){ return color; }
	int Row(){ return row; }
	int Col(){ return col; }
	int ID(){ return id; }
	void Cursor();
	virtual void Draw();
	int DistanceFrom(int r,int c);
	int DistanceFrom(Object* ptr){ return DistanceFrom(ptr->Row(),ptr->Col()); }
};

#endif

